Properties provide the means to specify and examine the state, appearance, and behavior of nodes. More...
Classes | |
class | kanzi::AbstractIndexedRange |
Abstract indexed range interface. More... | |
class | kanzi::AbstractPropertyNotificationHandler |
Abstract property notification handler. More... | |
class | kanzi::AbstractPropertyType |
AbstractPropertyType is a homogeneous property type handle to an existing property type. More... | |
class | kanzi::AbstractPropertyTypeDescriptor |
AbstractPropertyTypeDescriptor is used internally by the property type system to manage property types. More... | |
class | kanzi::AbstractRange |
Abstract range interface. More... | |
class | kanzi::AbstractRangeIterator |
Abstract range iterator interface. More... | |
class | kanzi::AbstractRangeLocation |
Location into a range. More... | |
class | kanzi::ClassPropertyDefaultValue< TDataType > |
ClassPropertyDefaultValue is a helper for installing property values as class metadata. More... | |
class | kanzi::Constraints |
Contains property types of Constraints. More... | |
class | kanzi::PropertyObject |
PropertyObject is the base class that supports setting and retrieving of property types. More... | |
class | kanzi::PropertyType< Type, typename > |
An instance of a PropertyType represents a single property type in the Kanzi property system. More... | |
class | kanzi::PropertyType< Type, typename enable_if< is_enum< Type >::value >::type > |
Specialization for PropertyType for enums. See PropertyType. More... | |
Typedefs | |
using | kanzi::PropertyTypeRegistry |
Alias for map of all property types. | |
Enumerations | |
enum | kanzi::PropertyNotificationReason { kanzi::PropertyNotificationReasonChanged , kanzi::PropertyNotificationReasonRemoved } |
Property notification reason. More... | |
enum | kanzi::PropertyTypeChangeFlag { kanzi::PropertyTypeChangeFlagFinalTransformation , kanzi::PropertyTypeChangeFlagMeasure , kanzi::PropertyTypeChangeFlagParentMeasure , kanzi::PropertyTypeChangeFlagArrange , kanzi::PropertyTypeChangeFlagRender , kanzi::PropertyTypeChangeFlagDraw , kanzi::PropertyTypeChangeFlagConstraint } |
Each property type can have one or more change flags that indicate the effects of changing the value of that property. More... | |
enum | kanzi::PropertyValuePrecedence { kanzi::PropertyValuePrecedenceClass , kanzi::PropertyValuePrecedenceStyle , kanzi::PropertyValuePrecedenceLocal } |
Property value precedence. More... | |
Functions | |
PropertyTypeRegistry::const_iterator | kanzi::beginPropertyTypes () |
Get iterator to the beginning of registry of all property types. | |
PropertyTypeRegistry::const_iterator | kanzi::endPropertyTypes () |
Get iterator to the end of registry of all property types. | |
Properties provide the means to specify and examine the state, appearance, and behavior of nodes.
For example, a property can define a color, indicate whether a button is pressed, or specify the alignment of an item. Properties provide a uniform way to access data of Kanzi nodes, so that many Kanzi subsystems can manipulate the data.That way you can, for example, animate property values, provide bindings between property values, and monitor property value changes.
Alias for map of all property types.
Each property type can have one or more change flags that indicate the effects of changing the value of that property.
For example, when the Text property of a Text Block node changes, Kanzi must recalculate the layout of that Text Block, which is why the TextConcept::TextProperty has the PropertyTypeChangeFlagMeasure.
Enumerator | |
---|---|
PropertyTypeChangeFlagFinalTransformation | Use this flag for a property type that affects the final transformation of a node and its descendants. For a 2D node, this flag causes Kanzi to: -# Run Node2D::updateRender on the node and its descendants. This updates the transformation of the nodes. -# Draw all nodes. For a 3D node, this flag causes Kanzi to: -# Update the transformation of the node and its descendants. -# Draw all nodes. For example, Node::ActualWidthProperty, Node2D::RenderTransformationProperty, and Node3D::RenderTransformationProperty use this flag. |
PropertyTypeChangeFlagMeasure | Use this flag for a property type that affects the size of the node as reported by the node itself, or the size and position of the node with respect to other nodes. For a 2D node, this flag causes Kanzi to:
For a 3D node, this flag causes Kanzi to:
For example, properties that set the size, margins, padding, and alignment of a node, use this flag. |
PropertyTypeChangeFlagParentMeasure | Use this flag for a property type that affects the layout of the parent node of a node. This flag causes Kanzi to set the PropertyTypeChangeFlagMeasure flag on the parent of the node. For example, the DockLayoutConcept::SideProperty, GridLayoutConcept::ColumnProperty, and GridLayoutConcept::RowProperty use this flag. |
PropertyTypeChangeFlagArrange | Use this flag for a property type that affects the need to arrange the layout of a node. For a 2D node, this flag causes Kanzi to: -# Run Node2D::arrange on the node and its descendants. -# Run Node2D::updateRender on the node and its descendants. If the transform of a node changed, Node2D::updateRender recalculates the transformation. -# Draw all nodes. For a 3D node, this flag causes Kanzi to: -# Run Node3D::arrange on the node and its descendants. -# Recalculate the transformations of the node and its descendants. -# Draw all nodes. All property types that have the #PropertyTypeChangeFlagMeasure set, run the arrange phase on those nodes whose measurements changed. |
PropertyTypeChangeFlagRender | Use this flag for a property type that changes the rendering parameters of a 2D node but does not affect the layout. For a 2D node, this flag causes Kanzi to: -# Run Node2D::updateRender on the node and its descendants. If the transform of a node changed, Node2D::updateRender recalculates the transformation. -# Draw all nodes. For a property type that changes the rendering parameters of a 3D node but does not affect the layout, use #PropertyTypeChangeFlagDraw instead of PropertyTypeChangeFlagRender. For example, these properties use the PropertyTypeChangeFlagRender flag: - Node2D::RenderTransformationProperty and Node3D::RenderTransformationProperty - Brush properties - Properties of 2D effects, such as BlurEffect2D and MaskEffect2D |
PropertyTypeChangeFlagDraw | Use this flag for a property type that affects the drawing of a node. This flag causes Kanzi to draw all nodes. For example, most material properties use this flag. |
PropertyTypeChangeFlagConstraint | Property type with this flag informs that constraints are in use. |
PropertyTypeRegistry::const_iterator kanzi::beginPropertyTypes | ( | ) |
Get iterator to the beginning of registry of all property types.
PropertyTypeRegistry::const_iterator kanzi::endPropertyTypes | ( | ) |
Get iterator to the end of registry of all property types.